import Taro from '@tarojs/taro'

// 获取当前有效的TOTP验证码
export function getCurrentTOTP(accountId) {
  return Taro.cloud.callFunction({
    name: 'totpGenerator',
    data: {
      action: 'getCurrentCodes',
      data: {
        accountIds: [accountId]
      }
    }
  })
}

// 生成新的TOTP验证码
export function generateTOTP(data) {
  return Taro.cloud.callFunction({
    name: 'totpGenerator',
    data: {
      action: 'generate',
      data
    }
  })
}

// 批量获取多个账户的TOTP验证码
export function getBatchTOTP(accountIds, newAccount = null) {
  return Taro.cloud.callFunction({
    name: 'totpGenerator',
    data: {
      action: 'getCurrentCodes',
      data: {
        accountIds,
        newAccount
      }
    }
  })
}

// 同步账户信息到云数据库
export function syncTOTPAccounts(accounts) {
  return Taro.cloud.callFunction({
    name: 'totpGenerator',
    data: {
      action: 'syncAccounts',
      data: {
        accounts
      }
    }
  })
}

// 从云数据库获取用户所有账户
export function getUserTOTPAccounts() {
  return Taro.cloud.callFunction({
    name: 'totpGenerator',
    data: {
      action: 'getUserAccounts',
      data: {}
    }
  })
}

// 获取TOTP时间信息
export function getTOTPTimeInfo() {
  // 先本地计算（用于快速显示，避免等待API）
  const epoch = Math.floor(Date.now() / 1000)
  const period = 30
  const current = epoch % period
  const remaining = period - current

  // 返回本地计算的结果
  return {
    epoch,
    period,
    current,
    remaining
  }
}

// 获取服务器时间信息
export function getServerTimeInfo() {
  return Taro.cloud.callFunction({
    name: 'totpGenerator',
    data: {
      action: 'getTimeInfo',
      data: {}
    }
  })
}
